package operator;

public class op3 {
    public static void main(String[] args) {

        /*
        逻辑运算符:参与逻辑运算符运算的表达式都是布尔表达式,最终运算结果也一定是true或false
            布尔表达式:运算结果要么true要么false

        &&(与,并且)
        如果商品购买数量超过10件并且总金额超过500,我就打99折
	    只有所有的条件同时满足,&&运算的最终结果才是true
	    全真才为真,有假即为假
  //只要出现false,后面表达式将不再判断
        ||(或,或者)
        如果商品购买数量超过10件或者总金额超过500,我就打99折
         全假才为假,有真即为真
        只要出现true,后面表达式将不再判断
        !:逻辑非(取反)
        !true=false !false=true
*/
        // && 并且
        System.out.println(5 > 3 && 4 > 3);//true
        System.out.println(6 > 5 && 2 > 4);//false
        System.out.println(2 > 4 && 6 > 5);//false
        System.out.println(3 > 4 && 2 > 5);//false
        int m = 3;
        System.out.println(m > 4 && (m = 10) < 100);//前半句已经错了，后半句不再进行赋值
        System.out.println(m);//3
        System.out.println("-------------------------------");

        // || 或者
        System.out.println(5 > 3 || 4 > 3);// true
        System.out.println(6 > 5 || 2 > 4);// true
        System.out.println(2 > 4 || 6 > 5);// true
        System.out.println(3 > 4 || 2 > 5);// false
        int n = 10;
        System.out.println(n > 4 || (n = 15) < 100);//前半句已经为真，后半句不执行
        System.out.println(n);//10

        //! 逻辑非(取反)
        int a = 10;
        int b = 4;
        System.out.println(!(a>b));//false
    }
}
